﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades;
using System.Drawing;
using System.IO;

public partial class Cuenta_miCuenta : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (ControlSesion.VariableSesion.Id_User != 0)
            {
                traerMenu();
                traerPerfil();
            }
        }
    }

    private void traerMenu()
    {

    }
    protected void lnkPreguntasRealizadas_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Cuenta/PreguntasRealizadas.aspx");
    }
    protected void lnkPreguntasRecibidas_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Cuenta/PreguntasRecibidas.aspx");

    }

    protected void linkAceptar_Click(object sender, System.EventArgs e)
    {
        try
        {
            Usuario us = new Usuario(ControlSesion.VariableSesion.Id_User);
            us.Perfil.Apellido = txtApellido.Text.ToString();
            us.Perfil.Nombre = txtNombre.Text.ToString();
            us.Perfil.FechaNacimiento = DateTime.Parse(txtFechaNacimiento.Text.ToString());
            us.Perfil.Sexo = cboSexo.SelectedValue;
            us.Perfil.Telefono = int.Parse(txtTelefono.Text.ToString());
            us.Perfil.FechaModificacion = DateTime.Now;
            us.Perfil.Tema = int.Parse(cboTema.SelectedValue);
            us.Perfil.Modificar();
            ControlSesion.VariableSesion.Tema = cboTema.SelectedValue;
            traerPerfil();
        }
        catch (Exception ex)
        {
            LUM.lum.mensaje(ex.Message);
        }
    }

    private void traerCalificaciones(Usuario us)
    {
        rptPostulaciones.DataSource = us.ContratacionesSinCalificar;
        rptPostulaciones.DataBind();
    }

    private void traerPerfil()
    {
        Usuario us = new Usuario(ControlSesion.VariableSesion.Id_User);
        txtApellido.Text = us.Perfil.Apellido.ToString();
        txtNombre.Text = us.Perfil.Nombre.ToString();
        txtFechaNacimiento.Text = us.Perfil.FechaNacimiento.Value.ToString("dd/MM/yyyy");
        cboSexo.SelectedValue = us.Perfil.Sexo.ToString();
        txtTelefono.Text = us.Perfil.Telefono.ToString();
        lblApellido.Text = us.Perfil.Apellido.ToString();
        lblNombre.Text = us.Perfil.Nombre.ToString();
        lblFechaNacimiento.Text = us.Perfil.FechaNacimiento.Value.ToString("dd/MM/yyyy");
        lblTema.Text = us.Perfil.Tema.ToString();
        cboTema.SelectedValue = us.Perfil.Tema.ToString();
        if (us.Perfil.Sexo == "M")
            lblSexo.Text = "Masculino";
        else
            lblSexo.Text = "Femenino";
        lblTelefono.Text = us.Perfil.Telefono.ToString();
        traerCalificaciones(us);
        imgUpload.ImageUrl = "~/Cuenta/ImagenPerfil/" + us.Id.ToString() + ".jpg" + "?i=" + DateTime.Now.Ticks.ToString();

        rptMisRecomendados.DataSource = us.Recomendaciones;
        rptMisRecomendados.DataBind();

        rptMeRecomiendan.DataSource = us.RecomendacionesRecibidas;
        rptMeRecomiendan.DataBind();

    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        string fileName = Path.GetFileName(imgUpload.ImageUrl.ToString().Split('?')[0]);
        string filePath = Path.Combine(Server.MapPath("~/Cuenta/ImagenPerfil"), fileName);
        string cropFileName = "";
        string cropFilePath = "";
        if (File.Exists(filePath))
        {
            System.Drawing.Image orgImg = System.Drawing.Image.FromFile(filePath);
            Rectangle CropArea = new Rectangle(
                Convert.ToInt32(X.Value),
                Convert.ToInt32(Y.Value),
                Convert.ToInt32(W.Value),
                Convert.ToInt32(H.Value));
            try
            {
                Bitmap bitMap = new Bitmap(CropArea.Width, CropArea.Height);
                using (Graphics g = Graphics.FromImage(bitMap))
                {
                    g.DrawImage(orgImg, new Rectangle(0, 0, bitMap.Width, bitMap.Height), CropArea, GraphicsUnit.Pixel);
                }
               
                cropFileName =  fileName;
                cropFilePath = Path.Combine(Server.MapPath("~/Cuenta/ImagenPerfil/crops"), cropFileName);
                bitMap.Save(cropFilePath,System.Drawing.Imaging.ImageFormat.Jpeg);
                               
               
            }
            catch (Exception ex)
            {
                throw;
            }
        }
    }
}